paso a paso y a4988 falla

Hola mi problema es que estoy intentando mover un motor paso a paso con un arduino mega, pololu a4988 y fuente atx a 12v.
he probado con diferentes motores y todos hacen lo mismo, nada mas conectarlo giran unas cuantas vueltas pero después se paran pero continúan haciendo ruido, la tensión esta regulada.
y el programa que utilizo es este:

const int dirPin = 8;
const int stepPin = 9;
 
const int steps = 200;
int stepDelay;
 
void setup() {
 // Marcar los pines como salida
 pinMode(dirPin, OUTPUT);
 pinMode(stepPin, OUTPUT);
}
 
void loop() {
 //Activar una direccion y fijar la velocidad con stepDelay
 digitalWrite(dirPin, HIGH);
 stepDelay = 250;
 // Giramos 200 pulsos para hacer una vuelta completa
 for (int x = 0; x < 200; x++) {
 digitalWrite(stepPin, HIGH);
 delayMicroseconds(stepDelay);
 digitalWrite(stepPin, LOW);
 delayMicroseconds(stepDelay);
 }
 delay(1000);
 
 //Cambiamos la direccion y aumentamos la velocidad
 digitalWrite(dirPin, LOW);
 stepDelay = 150;
 // Giramos 400 pulsos para hacer dos vueltas completas
 for (int x = 0; x < 400; x++) {
 digitalWrite(stepPin, HIGH);
 delayMicroseconds(stepDelay);
 digitalWrite(stepPin, LOW);
 delayMicroseconds(stepDelay);
 }
 delay(1000);
}

la pocas vueltas que da el motor las hace como intentando girar el los dos sentidos y a tirones, cuando presiono el reset de arduino da otras pocas vueltas herraticas y se para y hace ruido.
he cambiado de pololu y continua haciendo lo mismo.

Y alimentas los motores con que?

NOTA: lee el msg privado que te envié y por favor sigue el consejo.

los motores los he alimentado con una fuente atx de pc a 12v.
Me he dado cuenta que si desconecto el cable de DIR y STEP el motor tiene el mismo comportamiento que si los conecto, he revisado el conexionado y parece estar todo bien.
Hay una cosa que no entiendo, ¿Por que gnd de arduino y A4988 y alimentación motor tiene que ser común?
Lo estoy conectando sin condensador, ¿es posible que el problema venga de ahí?

Decir que el problema de movimiento de los motores quedo solucionado montando todo en una protoboard diferente e incorporando el condensador segun indica el esquema.
Me surge un nuevo problema y es que segun la programacion tendria que hacer las vueltas completas y mi motor va como desfasado, cada vuelta avanza algun paso de mas y no es exacto.
mirando el datasheet cada paso del motor son 7,5 grados por lo que una vuelta completa tendrian que ser 45 pasos, lo he modificado en el programa y sigue haciendo lo mismo.
¿que fallo estoy teniendo?
Un saludo.