As a simple analogon:
Can you stop time? I mean the real time that runs forward in the unsiverse? Of course not.
So how would you cook spaghetti?
fill in water into a pot add some salt
put the pot on cooker and switch on
wait until water boils
That was the preparation no the interesting part starts:
You want to cook the spaghetti for 10 minutes
So how are you gonna do this? Calling god "can you reset time to zero"? Of course not !
It's the same thing with millis() millis() runs up after power-on and never can be stopped (exept power off)
You have a fundamental misunderstanding of how to work with millis().
1: MILLIS() CAN'T BE STOPPED
2: you programm it DIFFERENT!
I apalogise for shouting. here comes the solution:
You put the spaghetti into the pot and
You take a look onto a clock. Let's say it is 1:04 pm.
So you know at 1:14 pm the spaghetti are finsihed al dente
What you have done is calculating the endtime by adding 10 minutes to the actual time.
If you have nothing else than a simple clock you look on the clock until it is 1:14 pm.
What you are doing in principle is looking at the clock pretty often to recognize when is it 1:14 pm.
In programming you do a similar thing. I emphasize a similiar thing not exact the same.
In programming with millis() you calculate time right know - start-time of cooking
so it looks like this
**1:04 ** - 1:04 = 0 minutes
**1:05 ** - 1:04 = 1 minute
**1:06 ** - 1:04 = 2 minutes
**1:07 ** - 1:04 = 3 minutes
**1:08 ** - 1:04 = 4 minutes
**1:09 ** - 1:04 = 5 minutes
**1:10 ** - 1:04 = 6 minutes
**1:11 ** - 1:04 = 7 minutes
**1:12 ** - 1:04 = 8 minutes
**1:13 ** - 1:04 = 9 minutes
**1:14 ** - 1:04 = 10 minutes <== HA! 10 minutes over !! spaghetti ready to eat!
This difference time right know - start-time of cooking is compared to your 10 minutes.
in programming code it looks like this
if (time_right_know - startTime >= MyWaitingTime ) {
Do Timed action
}
time right know - start-time of cooking >= MyWaitingTime
usually the variables are named this way
currentTime = millis(); // store actual time for calculating the difference.
if ( currentTime - previousTime >= MyWaitingTime) {
do timed action
}
If the timed action should be repeated like switching an LED ON/OFF all the time
loop()
currentTime = millis(); // store actual time for calculating the difference.
if ( currentTime - previousTime >= MyWaitingTime) {
previousTime = **currentTime **// make actual time the previous time for next cycle actual time the
do timed action
}
} // end of loop
if you need more explanation I recommend watching the video in this tutorial and read this tutorial
arduino-sketch-with-millis-instead-of-delay
blink-without-delay-explained
hm somehow I got hungry - gonna cook some spaghetti right know 
best regards Stefan