Du gehst an die Sache etwas falsch heran. Der Schrittmotor verhält sich ähnlich wie eine Synchronmaschine, will heißen die Drehzahl ist völlig unabhängig von der Leistung, solange er keine Schritte verliert. Du gibst ihm ja die Schritte mit der Impulsfrequenz vor, an die er sich auch richtet. Je mehr Leistung du draufschaltest desto höher wird das Moment, welches er erzeugt, allerdings beschleunigt er dann nicht, sondern kann einfach nur mehr Kraft übertragen. Die Drehzahl wird von der Pulsfrequenz des Ansteuersignals vorgegeben. Wenn jetzt zB. am Takteingang des L297 im Wechsel je 100ms Low und 100ms High anliegen, dann bewegt sich der Motor alle 200ms um einen Schritt weiter. Mehr gibts da eigentlich nicht zu verstehen. Dann musst du es im µC nur noch so Programmieren, dass er genau 50 Impulse sendet und schon hat es sich erledigt. Die Frequenz und somit die Geschwindigkeit ergibt sich aus den Wartezeiten zwischen den Impulsen.
In Pseudocode:

Wiederhole 50 Mal:
setze Ausgang high
warte Wartezeit
setze Ausgang low

Die Drehzahl ist dann Schritte/Umdrehung geteilt durch die Wartezeit