Controlling 3 stepper motors simultaneously

Thank you for your help. I tried playing with the code and only one stepper and I have come up with this (changed the millis to micros as well since the movement of the motor seems to be smoother controlled with micros):

unsigned long curMicros;
unsigned long prevStepMicros = 0;
unsigned long microsBetweenSteps = 2000;
int currentStep = 0;

  void singleStep() {
  if (curMicros - prevStepMicros >= microsBetweenSteps) {
    prevStepMicros += microsBetweenSteps;
    digitalWrite(stepperPin, HIGH);
    digitalWrite(stepperPin, LOW);
  }
}
void multipleSteps (){
if (currentStep<totalSteps) {
  singleStep();
} else {
digitalWrite(stepperEnablePin, HIGH);
}
}

So when calling the multipleSteps function it should repeat the singleStep function as long as the currentStep is less than the totalSteps and after currentStep is equal to the totalSteps it should deenergize the motor. But it doesn't it just keeps spinning on and on.