Counting down time to target while AccelStepper is running

Hi, I'm building a motorized camera slider with a stepper motor that is controlled by AccelStepper. I want to display a countdown time to target on a oled display how should I go about coding that?
At the moment I have everything working I can set the duration that the slider will take to run from end to end and display that on the OLED display, but when I press start and the AccelStepper started running (stepperX.runToNewPosition(15000); ) I have to wait until it finishes the run before I can make any change to the OLED display, so if there is any way I can make changes to the display while AccelStepper is running (stepperX.runToNewPosition(15000); )?

void loop()
{
  //Slider Setup display 2
  {
    Serial.println("Set the Duration");
    display.clearDisplay();
    display.setTextSize(2);
    display.setTextColor(WHITE);
    display.setCursor(0, 0);
    display.println("Set the   Duration");
    display.display();
    delay(1000);
  }
  while (digitalRead(button1))    //    set duration in second
  {
    inputA = analogRead(A0);    //  Read Potentiomenter
    if ((inputA > previous + 4) || (inputA < previous - 4)) //  Signal filter
    {
      durationSec = map(inputA, 0, 1023, 0, 59); //    set duration in second write to "durationSec"
      previous = inputA;
      {
        Serial.println(inputA);   //    display duration of travel on display (set Seconds)
        display.clearDisplay();
        display.setTextSize(2);
        display.setTextColor(WHITE);
        display.setCursor(5, 0);
        display.println("0");
        display.setTextSize(2);
        display.setTextColor(WHITE);
        display.setCursor(68, 0);
        display.println(durationSec);
        display.setTextSize(1);
        display.setTextColor(WHITE);
        display.setCursor(5, 7);
        display.println("      Min       Sec");
        display.setTextSize(1);
        display.setTextColor(WHITE);
        display.setCursor(5, 23);
        display.println("Set Seconds");    //    press set to confirm duration
        display.display();
      }
    }
  }
  delay(500);
  while (digitalRead(button1))    //    set duration in minutes
  {
    inputA = analogRead(A0);    //  Read Potentiomenter
    if ((inputA > previous + 4) || (inputA < previous - 4)) //  Signal filter
    {
      durationMin = map(inputA, 0, 1023, 0, 120); //    set duration in Minute write to "durationMin"
      previous = inputA;
      {
        Serial.println(inputA);   //    display duration of travel on display (set Minutes)
        display.clearDisplay();
        display.setTextSize(2);
        display.setTextColor(WHITE);
        display.setCursor(5, 0);
        display.println(durationMin);
        display.setTextSize(2);
        display.setTextColor(WHITE);
        display.setCursor(68, 0);
        display.println(durationSec);
        display.setTextSize(1);
        display.setTextColor(WHITE);
        display.setCursor(5, 7);
        display.println("      Min       Sec");
        display.setTextSize(1);
        display.setTextColor(WHITE);
        display.setCursor(5, 23);
        display.println("Set to confirm");    //    press set to confirm duration
        display.display();
      }
    }
  }
  {
    Speed = (15000 / ((durationMin * 60) + durationSec));
  }

  {
    digitalWrite(enPin, LOW);   //  Enable mortor
    stepperX.setAcceleration(6000);  //  Set Acceleration
    delay(1000);
  }

  while (digitalRead(button1))    //    press start to start the run
  {
    Serial.println("Press to start");
    display.clearDisplay();
    display.setTextSize(1);
    display.setTextColor(WHITE);
    display.setCursor(0, 14);
    display.println("Press Start to Begin");
    display.display();
    delay(250);
    if (!digitalRead(button2))
    {
      delay(250);
      while (digitalRead(button2))
      {
        {
          {
            Serial.println("Running");    //    display status and duration setting
            { //  display setting
              display.clearDisplay();
              display.setTextSize(2);
              display.setTextColor(WHITE);
              display.setCursor(5, 0);
              display.println("Running");
              display.setTextSize(2);
              display.setTextColor(WHITE);
              display.setCursor(5, 18);
              display.println(durationMin);
              display.setTextSize(2);
              display.setTextColor(WHITE);
              display.setCursor(68, 18);
              display.println(durationSec);
              display.setTextSize(1);
              display.setTextColor(WHITE);
              display.setCursor(5, 23);
              display.println("      Min       Sec");
              display.display();
            }
          }
          stepperX.setMaxSpeed(Speed);
          stepperX.runToNewPosition(15000);    //    Move stepper to end
        }
        {
          {
            Serial.println("Running");    //    display status and duration setting
            { //  display setting
              display.clearDisplay();
              display.setTextSize(2);
              display.setTextColor(WHITE);
              display.setCursor(5, 0);
              display.println("Running");
              display.setTextSize(2);
              display.setTextColor(WHITE);
              display.setCursor(5, 18);
              display.println(durationMin);
              display.setTextSize(2);
              display.setTextColor(WHITE);
              display.setCursor(68, 18);
              display.println(durationSec);
              display.setTextSize(1);
              display.setTextColor(WHITE);
              display.setCursor(5, 23);
              display.println("      Min       Sec");
              display.display();
            }
          }
          stepperX.setMaxSpeed(Speed);
          stepperX.runToNewPosition(0);  // Move stepper to end
        }
      }
      Serial.println("Stopped");    //      Display status (stopped)
      display.clearDisplay();
      display.setTextSize(2);
      display.setTextColor(WHITE);
      display.setCursor(0, 0);
      display.println("Stopped!");
      display.display();
      delay(3000);
    }
  }
}

I have to wait until it finishes the run before I can make any change to the OLED display

That is because runToNewPosition() is a blocking function. That function does not return until the stepper is at the new position. It IS possible, and even easy, to set the position, and then call run() repeatedly (every time through loop()), and the stepper will eventually get there, but where you will be able to do other things while the stepper is stepping.