Problems with high RPM with NEMA-17 Stepper Motor

Also I can attach code If it will be of any help...

// Libraries
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Wire.h>

const int stepPin = 3;
const int dirPin = 2;

#include <AccelStepper.h>
AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin); // STEP, DIR pin

Adafruit_SSD1306 display(128, 64, &Wire, -1);

// Define pins
#define BTN_33 5
#define BTN_45 4

#define POT_PIN A2

int btn_33_value;
int btn_45_value;

bool spin = false;

int stepsPerRevolution = 200;  // full steos
int microstepping = 16;        // TMC2209 DIP switches (or UART)
int rpm = 1200;

void setup() {
  //pinMode(stepPin, OUTPUT);
  //pinMode(dirPin, OUTPUT);
  pinMode(POT_PIN, OUTPUT);

  //stepper.setMaxSpeed(3200);  // steps per second
  //stepper.setSpeed(3200);     // This gives 60 RPM if 3200 steps per rotation

  stepper.setMaxSpeed(25600);  // 480RPM = 25600 steps per second
  stepper.setSpeed(25600);     // 480RPM = 25600 steps per second

  // 480RPM = 25600 steps per second

  pinMode(BTN_33, INPUT);
  pinMode(BTN_45, INPUT);

  digitalWrite(POT_PIN, LOW);

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) for(;;);
  display.clearDisplay();
  display.setCursor(40, 0);
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.print("Hello Nema 2");
  display.display();

  delay(2000);
  
  // Set direction (HIGH or LOW)
  //digitalWrite(dirPin, HIGH); // or LOW
}

void loop() {
  btn_33_value = digitalRead(BTN_33);
  btn_45_value = digitalRead(BTN_45);

  int stepsPerSec = (stepsPerRevolution * microstepping * rpm) / 60;
  float delayMicro = (1.0 / stepsPerSec) * 1e6;

  if (btn_33_value == LOW) {
    digitalWrite(POT_PIN, HIGH); // Here we just used it for test to turn ON LED
    spin = true;
  } else if (btn_45_value == LOW) {
    digitalWrite(POT_PIN, LOW);  // Here we just used it for test to turn OFF LED
    spin = false;
  }
  // Move 200 steps (1 revolution for 1.8° motor)
  if (spin) {
    //digitalWrite(stepPin, HIGH);
    //delayMicroseconds(delayMicro);
    //digitalWrite(stepPin, LOW);
    //delayMicroseconds(delayMicro);
    stepper.runSpeed();
  }
  /*
  for (int i = 0; i < 2200; i++) {

    digitalWrite(stepPin, HIGH);
    delayMicroseconds(300); // Step pulse width
    digitalWrite(stepPin, LOW);
    delayMicroseconds(300);

  }*/

  //delay(1000); // Wait 1 second

  // Reverse direction
  //digitalWrite(dirPin, !digitalRead(dirPin));
}

This version of code is with AccelStepper library and Motor just vibrates without moving, it seems that 7000 steps is maximum everything above it just vibrates...