Zum Bild vom 13.3. 23:51:
Der ULN 2003 ist ein invertierender Treiber für 500mA, er hat die Eingänge links und die Ausgänge rechts. Die Spulen 1 und 3 des unipolar angesteuerten Motors werden alternativ angesteuert, ebenso die Spule 2 und 4. Damit werden immer 2 Spulen des Motors angesteuert, das ist doppelt soviel Strom wie bei einer rein sequenziellen Ansteuerung, aber einfach zu realisieren.
Die 1k Widerstände am Eingang 1 und 6 machen keinen Sinn wenn 3 und 4 direkt angeschlossen werden, stören aber nicht.
An den Pin 9 werden die Abschaltstrom spitzen aus den Spulen geleitet. Die Diode muß den Strom in Sperrichtung durchlassen. Wenn man die Stöme schnell abklingen lassen möchte, kann man eine Zehnerdiode einsetzen, sonst direkt verbinden. Maximale Zehnerspannung (50V-12V=38V).

Die Schaltung ist nicht strombegrenzt. Die Spulen werden eingeschaltet und wenn der Stom (12V geteilt durch Spulenwiderstand) größer ist als 500mA, gibt die Schaltung irgendwann Rauchzeichen. Also einfache Schaltung, man muß selber aufpassen, höchstwahrscheinlich die 12V überprüfen und gegebenenfalls reduzieren.
Die "minus von den 12V" werden an Pin 8 angeschlossen. Dieser Punkt ist auch die Bezugsmasse für die Ansteuerung vom PC. (PC-Bezugspotential (Masse, 0V) für die Ansteuer-Signale Data0, Data1 auch verbinden.)

Zu den Postings von 23:55 und 23:28 zunächst: Schrittmotoren ohne Mittelanschluß können nur bipolar betrieben werden. Das geht mit der angegebenen Schaltung nicht.
Was das mit den Ports und rechstlauf bedeutet wird nicht klar, bei einer Schaltung wie der angegebenen muß jeder Schritt von Computer einzeln angesteuert werden.
Manfred