Motores Nema17, driver A4988 y Shield CNC, Giran en dirección aleatoria

Buenas a todos.

Tengo un problema con los Motores Nema17, como dice en el titulo estoy trabajando con el driver A4988 y un shield CNC que uso para simplificar las conexiones.

Materiales:

Shield CNC

Arduino Leonardo

Driver 4988

Motor nema17 1.5A

Fuente de voltaje 12 v / 10 A

Conexion serial PC.

Codigo:

int steps =2;
int direccion = 5;

int pasos = 0;

void setup() {
  
  Serial.begin(9600);
  
  pinMode(steps, OUTPUT);
  pinMode(direccion, OUTPUT);
  
}

void loop() {
   if (Serial.available()) {
    pasos = 2000;
    char pin = Serial.read();
    switch (pin) {
      case 'a':
      
          digitalWrite(direccion,HIGH);
          delay(1000);
          for (int x = 0; x < pasos; x++){
          digitalWrite(steps, HIGH);
          delayMicroseconds(100);
          digitalWrite(steps, LOW);
          delayMicroseconds(1200);          
          }
          Serial.println(1);
          digitalWrite(direccion, LOW);
          break;
          
      case 'b':
      
          digitalWrite(direccion, LOW);
          delay(1000);
          for (int x = 0; x < pasos; x++){           
          digitalWrite(steps, HIGH);
          delayMicroseconds(100);
          digitalWrite(steps, LOW);
          delayMicroseconds(1200);          
          }
          Serial.println(2);
          break;
     }
  }
}

En el codigo puse 100 a 1200, ya que si pongo 250 y 250 de delay el motor no gira o se traba, agarra desde 5 a 900 hasta 100 a 1600.

El driver esta calibrado a 0.84 V, como lo dice la formula de Imax = Vref (8xR)

De antemano les agradezco su apoyo.