entender libreria ACCELSTEPPER

Buenas
Para un proyecto de fotografía esférica necesitaría que se moviera un motor paso a paso un numero determinado de veces.
Si realizo este movimiento sin aceleración el código funciona correctamente. Y el motor se mueve 6 veces y realiza un giro completo

int DirectionPin = 6; //Direction pin
int StepPin = 7; //Stepper pin
  int pasos=73000/6; //73000 pasos son 360º 
 int Velocidad=20;
void setup(){
  pinMode(DirectionPin, OUTPUT);
  pinMode(StepPin, OUTPUT);
  Serial.begin(9600);
}
 
void loop(){
  for (int a=0; a<6; a++){
    mover();
  delay(100);
  }
  delay(2000);
}

void mover(){
digitalWrite(DirectionPin, LOW); 
  delay(500);
  for (int i = 0; i < pasos; i++){
    digitalWrite(StepPin, HIGH);
    delayMicroseconds(Velocidad);
    digitalWrite(StepPin, LOW);
    delayMicroseconds(Velocidad);
     }
 }

Sin embargo quiero que el movimiento sea con aceleración. Me surgen bastantes dudas del funcionamiento de la libreria <AccelStepper.h>
Quisiera hacer que también se ejecutara un numero determinado de veces, pero solo se mueve 1 vez.
Alguien puede aclararme donde esta el problema en el código que utilizo con aceleracion??

#include <AccelStepper.h>
AccelStepper stepper(1, 7, 6);
int pasos;
void setup(){
   stepper.setMaxSpeed(4000);
  stepper.setAcceleration(2000); 
}
 
void loop(){ 
for (int a=0; a<6; a++){
    pasos=12167;
   mover();
 }

}


void mover(){
  if (stepper.distanceToGo() == 0)
    {
        stepper.moveTo(pasos);
    }
    stepper.run();  
}

Gracias de antemano