Arduino Uno, não consegue mostrar display e acionar stepper

Olá. Baixei um códigoe o stepper estava ok! Mas ao adicionar uma tela oled, e algumas informações para mostrar no Loop, o stepper mal roda...Poderiam ajudar por gentileza?

// Include the Arduino Stepper Library
#include <Stepper.h>

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels


#define CLOCK_PIN 8
#define DATA_PIN  9
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// Define Constants
 
// Number of steps per output rotation
const int STEPS_PER_REV = 200;
const int SPEED_CONTROL = A0;

// The pins used are 1,2,3,4 
// Connected to L298N Motor Driver In1, In2, In3, In4 
// Pins entered in sequence 1-2-3-4 for proper step sequencing
 
Stepper stepper_NEMA17(STEPS_PER_REV, 1, 2, 3, 4);
 
void setup() {

  Serial.begin(115200);

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
  //delay(2000);
  display.clearDisplay();

  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 10);
  // Display static text
  display.println("Enroladora 3D Factory");
  display.display(); 

  delay(2000);


}
 
void loop() {

//controle do motor

  // read the sensor value:
  int sensorReading = analogRead(SPEED_CONTROL);
  // map it to a range from 0 to 100:
  int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
  // set the motor speed:
  if (motorSpeed > 0) {
    //stepper_NEMA17.setSpeed(motorSpeed);
    // step 1/100 of a revolution:
    //stepper_NEMA17.step(STEPS_PER_REV / 100);
//mostrar porcentagem do motor    
  //display.clearDisplay();
  display.setTextSize(1.5);
  display.setTextColor(WHITE);
  //const int TXT_MIDDLE = 128/2 - strlen("Velocidade : " + motorSpeed + (String)" %")/2;
  display.setCursor(0 , 10);
  //display.println((String)"MOTOR : ");

  if (motorSpeed > 9) {
        stepper_NEMA17.setSpeed(motorSpeed);
    // step 1/100 of a revolution:
  stepper_NEMA17.step(STEPS_PER_REV / 100);
  display.setCursor((128/2) - 8, 2);
  display.println(motorSpeed + (String)"%");
  display.drawRect(0, 0, 128, 32, WHITE);
  display.drawRect(0, 0, 128, 64, WHITE);
  display.drawRect(12, 10, 104, 16, WHITE);
  display.fillRect((128/2) - (motorSpeed/2), 12, motorSpeed, 12, WHITE);
  } else if (motorSpeed == 100) {
        stepper_NEMA17.setSpeed(motorSpeed);
    // step 1/100 of a revolution:
    stepper_NEMA17.step(STEPS_PER_REV / 100);
  display.setCursor((128/2) - 10, 2);
  display.println(motorSpeed + (String)"%");
  display.drawRect(0, 0, 128, 32, WHITE);
  display.drawRect(0, 0, 128, 64, WHITE);
  display.drawRect(12, 10, 104, 16, WHITE);
  display.fillRect((128/2) - (motorSpeed/2), 12, motorSpeed, 12, WHITE);
  } else { 
        stepper_NEMA17.setSpeed(motorSpeed);
    // step 1/100 of a revolution:
    stepper_NEMA17.step(STEPS_PER_REV / 100);
  display.setCursor((128/2) - 4, 2);
  display.println(motorSpeed + (String)"%"); 
  display.drawRect(0, 0, 128, 32, WHITE);
  display.drawRect(0, 0, 128, 64, WHITE);
  display.drawRect(12, 10, 104, 16, WHITE);
  display.fillRect((128/2) - (motorSpeed/2), 12, motorSpeed, 12, WHITE);
  }


  //display.drawLine(0,47,0,62, SSD1306_WHITE);
  //display.setCursor(0, 10);
  //String SpeedPercent = ((String)"Velocidade : " + motorSpeed + (String)" %");
  //display.drawRect(0, 0, 128, 32, WHITE);
  //display.drawRect(0, 0, 128, 64, WHITE);
  //display.drawRect(12, 10, 104, 16, WHITE);
  //display.fillRect((128/2) - (motorSpeed/2), 12, motorSpeed, 12, WHITE);
  //display.fillRect(14, 10, motorSpeed, 10, WHITE);
  //display.setTextSize(1);               // Normal 1:1 pixel scale
  //display.setTextColor(SSD1306_WHITE);  // Draw white text
  //display.setCursor(102,20);

  //display.setCursor((128/2) - 22, 30);
  //display.setCursor(10, 45);
  //display.println((String)"DIAMETRO");


  display.setTextSize(2.5);
  display.setCursor(12 , 40);
  display.println((String)"TESTE");

  display.setTextSize(1);
  display.setCursor(70 , 47);
  display.println((String)"mm");

  display.display(); 
  }
//buzzer
  //digitalWrite(11, HIGH);
  //delay(1000);
 // digitalWrite(11, LOW);
}