I break them up into functional subunits. I also label pins with what they're actually used for, say an analog input channel, rather than everything they potentially could be. I then break them up according to use into units: USB, buses, power and oscillator, etc. This means complex ICs get a project-specific component library. Usually I start from kipart, then fix up the output manually.