Paul__B:
Inappropriate choice.
The ULN2x03 is an essentially obsolete device, using Darlington transistors which lose at least 1.5 V and get unnecessarily hot in the process. That is the reason you are losing so much voltage.
Wait-a-hold-it... There's a MOSFET version of the ULN2003 [just add an 'F' or 'V' at the end]:
Paul__B:
And you are driving it with a 74HC595! A TPIC6A595 combines the functionality of both and uses proper FETs as drivers - if your motors are rated at 250 mA stall current, then unlike the ULN2003, the TPIC can drive all at once.
But, yeah -- cool looking device that combines the two! But, an expensive little bugger. Whereas, the combination of a 74HC595 and ULN2003V is around a buck [vs the 4 buck TPIC6A595!]
AND, if those motors do, indeed, have a stall current of 250mA, then the ULN2003V12 should handle them with ease (with a caveat):
What the diagram (above) is telling us, is even when the ULN2003V12 is sinking 250mA, the voltage at the Drain will be around 450mV (MUCH less than the ULN2003 Darlington version). AND will be MUCH less when the motor is doing its thing [unless, of course, its thing involves a heavy load]. BUT, the ULN2003V12 won't do well if all those motors start up at once! So, the programming will need to space startups accordingly [limiting them to 2 or 3 at a time]. Also, a problem will be if more than 3 or 4 motors are running with big loads, or are simultaneously stalled.
The overall current load the ULN2003V12 can handle is 700 to 1000 mA, which is dependant on how hot it gets inside the ULN2003V12!
The TPIC6A595 on the other hand, CAN manage all those motors at once, no matter how much they misbehave [again, assuming the 250mA stall current is correct]!