Lcd display doens't work when stepper motor is running

Hello everybody. I am trying to build a automatic pill dispenser but i have a problem. First i ask user for time and how often to take pill and i have pill box for seven pill. Then when it is time to take that pill motor starts to turn for that pill lcd display goes off and stays off forever. Here is my code:

#include <LiquidCrystal.h>
#include <Stepper.h>
#include <DS3231.h>
DS3231  rtc(SDA, SCL);
LiquidCrystal lcd(12, 11, 6, 5, 4, 3);
const int stepsPerRevolution = 512;  // change this to fit the number of steps per revolution

Stepper myStepper(stepsPerRevolution, 8, 10, 9, 13);

const int butonSayac = 2;
const int butonEnter = 7;
int saat = 0;
int dakika = 0;
int butonDurumuSayac = LOW;
int butonDurumuSayacDakika = LOW;
int butonDurumuSayacIlac = LOW;
int butonDurumuSayacGunde = LOW;
int butonEnterDurum = LOW;
int butonEnterDurumDakika = LOW;
int butonEnterDurumIlac = LOW;
int butonEnterDurumGunde = LOW;
int saatTemp;
int dakikaTemp;
int ilacNoTemp;
int ilacTemp;
int ilacGunde = 0;
int ilacNumber = 1;
int kutuBaslangic = 1;
int kutuSecilen;
int kutuAnlik;
int i;
int kutuArray[7][4];
int ilacZamanArray[7][9];

String x;
int a,b,c;



void setup(){
  pinMode(butonSayac, INPUT);
  pinMode(butonEnter, INPUT);
  Serial.begin(9600);
  rtc.begin();
  lcd.begin(16,2);
  myStepper.setSpeed(60);
  
  // The following lines can be uncommented to set the date and time
  rtc.setDOW(THURSDAY);     // Set Day-of-Week to SUNDAY
  rtc.setTime(00, 22, 0);     // Set the time to 12:00:00 (24hr format)
  rtc.setDate(10, 1, 2019);   // Set the date to January 1st, 2014
  
  for(i=0;i<7;i++){
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(i+1);
  lcd.print(".kutu: ");
  lcd.setCursor(0,1);
  lcd.print("Saat: ");
  lcd.print(saat);
  
  while(butonEnterDurum == LOW){
    butonDurumuSayac = digitalRead(butonSayac);
    
    if(butonDurumuSayac == HIGH){
      delay(10);
      saat++;
      if(saat > 23){
        saat = 0;
      }
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print(i+1);
      lcd.print(".kutu: ");
      lcd.setCursor(0,1);
      lcd.print("Saat: ");
      lcd.print(saat);
      
      while(butonDurumuSayac == HIGH){
        butonDurumuSayac = digitalRead(butonSayac);          
      }
      delay(10);
    }

    butonEnterDurum = digitalRead(butonEnter);
    delay(10);  
  }
  
  while(butonEnterDurum == HIGH){
    butonEnterDurum = digitalRead(butonEnter);
    
  }
  saatTemp = saat;
    
  butonDurumuSayac = LOW;
  kutuArray[i][0] = saatTemp;   
  
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Dakika: ");
  lcd.print(dakika);

  while(butonEnterDurumDakika == LOW){
    butonDurumuSayacDakika = digitalRead(butonSayac);
    
    if(butonDurumuSayacDakika == HIGH){
      delay(10);
      dakika++;
      
      if(dakika>59){
        dakika = 0;
      }
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Dakika: ");
      lcd.print(dakika);

      while(butonDurumuSayacDakika == HIGH){
        butonDurumuSayacDakika = digitalRead(butonSayac);          
      }
      delay(10);
    }
    butonEnterDurumDakika = digitalRead(butonEnter);
    delay(10);  
  } 
  
  while(butonEnterDurumDakika == HIGH){
    butonEnterDurumDakika = digitalRead(butonEnter);
    ////break;
  }
  dakikaTemp = dakika;
    
  butonDurumuSayacDakika = LOW;
    
  kutuArray[i][1] = dakikaTemp;  
    lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Gunde kac adet:");
  lcd.print(ilacGunde);
  
  while(butonEnterDurumGunde == LOW){
    butonDurumuSayacGunde = digitalRead(butonSayac);
  
    if(butonDurumuSayacGunde == HIGH){
      delay(10);
      ilacGunde++;
    
      if(ilacGunde>8){
        ilacGunde = 0;
      }
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Gunde kac adet:");
      lcd.print(ilacGunde);

      while(butonDurumuSayacGunde == HIGH){
        butonDurumuSayacGunde = digitalRead(butonSayac);          
      }
      delay(10);
    }
    butonEnterDurumGunde = digitalRead(butonEnter);
    delay(10);  
  } 
  
  while(butonEnterDurumGunde == HIGH){
    butonEnterDurumGunde = digitalRead(butonEnter);
    //break;
  }
  ilacTemp = ilacGunde;
    
  butonDurumuSayacGunde = LOW;
    
  kutuArray[i][2] = ilacTemp;
  kutuArray[i][3] = i+1;
  
  
  
  }
  delay(1000);
}
void loop(){
  long nowTime = millis();
  saatGuncel();
  alarmCheck();

}

void alarmSet(){
  for(int k=0; k<7; k++){
    if(kutuArray[k][2]>0){
      for(int v=0; v<kutuArray[k][2]; v++){
        ilacZamanArray[k][v] = kutuArray[k][0] + v*(24/kutuArray[k][2]);
        if(ilacZamanArray[k][v]>23){
          ilacZamanArray[k][v]-=24;      
        }
      }
    }
    ilacZamanArray[k][8] = (k+1);
  }
}

void alarmCheck(){
  for(int j=0; j<7; j++){
    for(int z=0; z<8; z++){
      //for(int y=0; y<ilacZamanArray[j][z]; y++){
        if(ilacZamanArray[j][z]==a && kutuArray[j][1]==b && c==0){
          motor(j+1);
        }
      //}
    }
  }
}


int motor(int m){ //for stepper
  kutuSecilen = m;
  kutuAnlik = kutuSecilen - kutuBaslangic;
  if(kutuAnlik<0){
    kutuAnlik = kutuAnlik + 7;
  }
  for(int l=0; l<kutuAnlik; l++){
    for(int r=0; r<292; r++){
      myStepper.step(1);
    }
  }
  kutuBaslangic = kutuAnlik;
}

void saatGuncel(){ //for time
  lcd.clear();
  lcd.print("Date: ");
  lcd.print(rtc.getDateStr());
  lcd.setCursor(0,1);
  lcd.print("Time:  ");
  x = rtc.getTimeStr();
  a=rtc.getSaat();    //Get current hour
  b=rtc.getDakika();  //Get current minute
  c=rtc.getSaniye();  //Get current second
  lcd.print(x);
  //lcd.print(b);
  lcd.setCursor(15,1);
  lcd.print(" ");
  
  // Wait one second before repeating :)
  delay (1000);

}

Show us a good schematic & image of your circuit wiring.
Posting images:
http://forum.arduino.cc/index.php?topic=519037.0

Look up star grounding.

Keep motor wires far away from signal wires.

Motor should have kickback diode across coil.

Make sure you have separate power supplies for the motor and Arduino/LCD

Try decoupling the LCD etc. with .1 µF capacitors.

BTW, time to stop using delay() in your sketches.

Look at the BWD (blink without delay) technique to remove delay()