I've developed a model/method before for identifying areas/features that labels are overlapping. The work flow goes something like this:
- Determine distance between features that labels usually overlap (e.g. 50ft, 500ft, 1000ft...etc).
- Buffer labeled feature by distance from step 1.
- Run Intersect tool on buffer result.
- Join result of Intersect tool layer to original labeled layer. This should highlight those features that may have potential for label overlap (the ones that joined).
- Add new field to labeled layer to define labeling conflict or not via Field Calculator tool.
- Create two labeling classes (with leader line and w/o leader line) save out this result as layer file.
The leader lines for the conflict class features will help pull the labels farther apart for those features (reducing or eliminating overlap). All these steps may be modeled via ModelBuilder then exported out to a python script for future re-use/automation.
Alternatively, following steps 1-5 above you could create a bounding box layer (by dissolving result of Intersect tool) which you could plug into Data Driven pages for generating zoomed in insets for the conflict areas.