After reading the button to delay the execution without stopping action before a

I know I used delay; it was just to get clear what you need.

So if the button is pushed you set the start time (from Robin2's code) buttonPressedMillis to the currentTime (millis). And next you test if some time has lapsed; you do so independent of the state of the button.

unsigned long currentTime;
unsigned long buttonPressedMillis = 0;

void loop()
{
  currentTime = millis();

  ...
  ...

  // if the button is pressed, set the start time of the delay
  if (val_1 == HIGH)
  {
    buttonPressedMillis = currentTime;
  }

  // if the delay was started and the delay time has lapsed, stop
  if(buttonPressedMillis != 0 && currentTime - buttonPressedMillis >=2000)
  {
      stepper.disableOutputs();//I want to delay this action against reading (val_1 == HIGH)
      buttonPresedMillis = 0;
  }
}