How to count the number of steps a stepper motor has made and update it on LCD?

IMHO you need to rewrite the code to separate the different activities. Your code in loop() could be as simple as

void loop() {
   readSwitches();
   moveMotor();
   updateLCD();
}

Have a look at Planning and Implementing a Program

With the code for the different activities in different functions it will be much easier to manage and to change one part without screwing up another.

If you want a responsive program you MUST get rid of all the delay()s and use millis() to manage timing without blocking. That is illustrated in the above link and in the demo Several Things at a Time

...R