I think you have the right idea, but the datasheet suggests there are two variations of this motor, a 6V one and a 24V one. I'd make very sure you have the 24V one. You can check by measuring the resistance of one winding. It should be 50 ohms (approximately) according to the datasheet. If it's closer to 8 ohms, you have the 6V version and should use a 6V external supply.
You are right, though, that an external supply is preferred as powering a motor directly from the Arduino is not a good idea.
I would move the external power supply ground (black) wire closer to the ground wire for the ULN2003 (near pin

. Might as well make that path as short as possible.
Otherwise your wiring looks correct!