Turning off LCD (backlight) when not in use.

I made a sketch for a project I’m working on.
The project turns a stepper, stepper speed is set with a poti and displayed on LCD.

To save battery life I want to turn off the LCD backlight after 60sec, but when it’s off and I do a speed adjustments (turning the poti) it has to come on again for 60 sec.
Now the backlight comes on by turning on the arduino and after 30sec it goes out and stays dark till restart

///////////////////////////// LIBRARIES ///////////////////////////////////////
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


///////////////////////////// DECLARE VARIABLES ///////////////////////////////////////
//declare variables for the motor pins
int motorPin1 = 7;	                  
int motorPin2 = 8;	                 
int motorPin3 = 9;	                 
int motorPin4 = 10;
                        
//declare variables for the rest                      
int motorSpeed = 0;     
int potPin = 2; 	      
int potValue = 0; 	     
int speedled = 6;        
int backled = 13;         
int cabelspeed = 0;      

///////////////////////////// VOID SETUP ///////////////////////////////////////
void setup() {
  lcd.begin(16, 2);
  lcd.setCursor(1,0);                  
  lcd.print("Sjuul's Winch!");       
  lcd.setCursor(13,1);                
  lcd.print("mmh");                   
  
  //declare pins as outputs
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  pinMode(speedled, OUTPUT); 
  pinMode(backled, OUTPUT);
  Serial.begin(9600);
}

///////////////////////////// VOID LOOP ///////////////////////////////////////

void loop(){

/////////////////  motor  ////////////////// 
 
  potValue = analogRead(potPin);           
  Serial.println(potValue);                      
  //Serial.println(motorSpeed);           
  //Serial.println(cabelspeed);     
  
  if (potValue < 512)                    
  {                   
    motorSpeed = (potValue/3 + 3);    
    clockwise();                                       
    lcd.setCursor(0, 1);                        
    lcd.print("-");                                    
    digitalWrite(speedled, HIGH);             
  }
   
  else                                                   
  {                                   
    motorSpeed = ((1024-potValue)/3 + 3);      
    counterclockwise();                                    
    lcd.setCursor(0, 1);                                   
    lcd.print("+");                                         
    digitalWrite(speedled, HIGH);                     
  }
  
/////////////////  LCD backlite  //////////////////         

  if (millis() < 30000)                   
  {
    digitalWrite(backled, HIGH);           
  }
  
  else                                     
  {
   digitalWrite(backled, LOW);           
  }
  
///////////////////Print pot value//////////////////////////

  lcd.setCursor(1, 1);                     
  lcd.print("     ");                        
  lcd.setCursor(1, 1);             
  lcd.print(potValue);                      
}

///////////////////////////// VOID COUNTERCLOCKWISE ///////////////////////////////////////
//set pins to ULN2003 high in sequence from 1 to 4
//delay "motorSpeed" between each pin setting (to determine speed) 

void counterclockwise (){   
  // 1
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delay(motorSpeed);
  // 2
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delay (motorSpeed);
  // 3
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delay(motorSpeed);
  // 4
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delay(motorSpeed);
  digitalWrite(speedled, LOW);                   
  // 5
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delay(motorSpeed);
  // 6
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, HIGH);
  delay (motorSpeed);
  // 7
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delay(motorSpeed);
  // 8
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delay(motorSpeed);
}

///////////////////////////// VOID CCLOCKWISE ///////////////////////////////////////
//set pins to ULN2003 high in sequence from 4 to 1
//delay "motorSpeed" between each pin setting (to determine speed)

void clockwise(){
  // 1
  digitalWrite(motorPin4, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, LOW);
  delay(motorSpeed);
  // 2
  digitalWrite(motorPin4, HIGH);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, LOW);
  digitalWrite(speedled, LOW);                
  delay (motorSpeed);
  // 3
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, LOW);
  delay(motorSpeed);
  // 4
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin1, LOW);
  delay(motorSpeed);
    digitalWrite(speedled, LOW);                   
  // 5
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin1, LOW);
  delay(motorSpeed);
  // 6
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin1, HIGH);
  delay (motorSpeed);
  // 7
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, HIGH);
  delay(motorSpeed);
  // 8
  digitalWrite(motorPin4, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, HIGH);
  delay(motorSpeed);  
}
if (millis() < 30000)

Once millis() reaches 30000 this will never be true again until you restart the program or reset the Arduino as you have discovered.

You need to record a start time then check each time through loop check whether millis() - start time is greater than the required waiting period. If so then act on it, including saving the new start time for the next period. You cannot reset millis().

Try something like this.

///////////////////////////// LIBRARIES ///////////////////////////////////////
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


///////////////////////////// DECLARE VARIABLES ///////////////////////////////////////
//declare variables for the motor pins
int motorPin1 = 7;	                  
int motorPin2 = 8;	                 
int motorPin3 = 9;	                 
int motorPin4 = 10;
                        
//declare variables for the rest                      
int motorSpeed = 0;     
int potPin = 2; 	      
int potValue = 0; 	     
int speedled = 6;        
int backled = 13;         
int cabelspeed = 0;      

///////////////////////////// VOID SETUP ///////////////////////////////////////
void setup() {
  lcd.begin(16, 2);
  lcd.setCursor(1,0);                  
  lcd.print("Sjuul's Winch!");       
  lcd.setCursor(13,1);                
  lcd.print("mmh");                   
  
  //declare pins as outputs
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  pinMode(speedled, OUTPUT); 
  pinMode(backled, OUTPUT);
  Serial.begin(9600);
}

///////////////////////////// VOID LOOP ///////////////////////////////////////

unsigned long lastPotChange = 0;
int lastPotValue =- 1;

void loop(){

/////////////////  motor  ////////////////// 
 
  potValue = analogRead(potPin);
  if (potValue !=lastPotValue)
    {lastPotChange=millis();
     lastPotValue=potValue;
    }  
  Serial.println(potValue);                      
  //Serial.println(motorSpeed);           
  //Serial.println(cabelspeed);     
  
  if (potValue < 512)                    
  {                   
    motorSpeed = (potValue/3 + 3);    
    clockwise();                                       
    lcd.setCursor(0, 1);                        
    lcd.print("-");                                    
    digitalWrite(speedled, HIGH);             
  }
   
  else                                                   
  {                                   
    motorSpeed = ((1024-potValue)/3 + 3);      
    counterclockwise();                                    
    lcd.setCursor(0, 1);                                   
    lcd.print("+");                                         
    digitalWrite(speedled, HIGH);                     
  }
  
/////////////////  LCD backlite  //////////////////         

  if ( (millis() - lastPotChange ) < 30000)                   
  {
    digitalWrite(backled, HIGH);           
  }
  
  else                                     
  {
   digitalWrite(backled, LOW);           
  }
  
///////////////////Print pot value//////////////////////////

  lcd.setCursor(1, 1);                     
  lcd.print("     ");                        
  lcd.setCursor(1, 1);             
  lcd.print(potValue);                      
}

///////////////////////////// VOID COUNTERCLOCKWISE ///////////////////////////////////////
//set pins to ULN2003 high in sequence from 1 to 4
//delay "motorSpeed" between each pin setting (to determine speed) 

void counterclockwise (){   
  // 1
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delay(motorSpeed);
  // 2
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delay (motorSpeed);
  // 3
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delay(motorSpeed);
  // 4
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delay(motorSpeed);
  digitalWrite(speedled, LOW);                   
  // 5
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delay(motorSpeed);
  // 6
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, HIGH);
  delay (motorSpeed);
  // 7
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delay(motorSpeed);
  // 8
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delay(motorSpeed);
}

///////////////////////////// VOID CCLOCKWISE ///////////////////////////////////////
//set pins to ULN2003 high in sequence from 4 to 1
//delay "motorSpeed" between each pin setting (to determine speed)

void clockwise(){
  // 1
  digitalWrite(motorPin4, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, LOW);
  delay(motorSpeed);
  // 2
  digitalWrite(motorPin4, HIGH);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, LOW);
  digitalWrite(speedled, LOW);                
  delay (motorSpeed);
  // 3
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, LOW);
  delay(motorSpeed);
  // 4
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin1, LOW);
  delay(motorSpeed);
    digitalWrite(speedled, LOW);                   
  // 5
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin1, LOW);
  delay(motorSpeed);
  // 6
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin1, HIGH);
  delay (motorSpeed);
  // 7
  digitalWrite(motorPin4, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, HIGH);
  delay(motorSpeed);
  // 8
  digitalWrite(motorPin4, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin1, HIGH);
  delay(motorSpeed);  
}

tanks got to work, have to use the cable speed because the pot value varies a little and will keep the light on by doing so.