Motor paso a paso con botón

Hola, estoy queriendo mover un motor paso a paso nema 17 con un pololu, un potenciometro y un botón.
La idea es que el potenciometro regule la velocidad con que se mueve el motor y, al presionar el botón, el motor se debe mover 200 pasos.

lo que no logro es que el motor se mueva, lo escucho trabajar pero no se mueve y el potenciometro al parecer funciona correctamente ya que al moverlo el ruido del motor aumenta o disminuye

Este es el código que arme:

int steps = 9;
int dir = 3;
int potenciometro;
int boton = 7;

int encender = 0;
int anterior = 0;
int estado = 0;

void setup() {

 pinMode(steps, OUTPUT);
 pinMode(dir, OUTPUT);
 pinMode(boton, INPUT);

}

void loop() {

 estado = digitalRead(boton);
 if (estado && anterior == 0){

     encender = 1 - encender;
     delay(30); 
   
   }

  anterior = estado;

  potenciometro = analogRead(A0);    
  potenciometro = map(potenciometro,0,1024,900,2500);  
  digitalWrite(dir, HIGH);
  
  if(encender){
   
     for(int i = 0; i < 200; i++){

         digitalWrite(steps, HIGH);         
         delayMicroseconds(5);              
         digitalWrite(steps, LOW);         
         
       }
   
   }

  delayMicroseconds(potenciometro);

}

Si alguno sabe como solucionarlo se los agradeceré mucho, desde ya muchas gracias!!!

Por favor lee las normas del foro y edita tu hilo, puntualmente los códigos van con etiquetas </> de código.
No hacerlo infrige las normas.