Part 1: Do they really understand?
My first thought is that you are running into the limits of working memory. As students try hard to understand step 5, they are pushing previous thoughts about step 1 and 2 out of their working memory, before having really processed that information. That ~guarantees they will forget steps 1 and 2 almost immediately, whether or not they understood it in the first place.
My second thought is false positives. If the student understands, they will likely say they understand. But maybe they incorrectly believe they understand and state that they understand. Or, maybe they don't understand but don't want to admit it. Or perhaps their understanding is very inflexible (i.e. cannot withstand contextually superficial changes), but they don't realize it.
The evidence from cognitive science, by the way, is overwhelming that virtually everyone is a poor judge of when real learning is happening. [See book "Make It Stick" or YouTube "How We Learn vs How We Think We Learn" or "Reject self-report" from book "Teach Like a Champion".] So, false positives are likely a big problem.
Instead of asking "Do you understand?", you need to develop more probing questions. For example, many teachers will write $(x^m)(x^n)=x^{m+n}$ and some examples of it on the board, then attempt to check understanding by saying, "Any questions?".
Student responses and non-responses to that are untrustworthy.
A better check would be to write, say, a variety of 20 different exponential expressions on a piece of paper and ask if that exponent property could apply and why or why not. If you mix in expressions such as:
$(x^n)(y^n)$
$9^m9^3$
$m^4m^7m^8$
$m^4m^7+m^8$,
$(x-3)^7(x-3)^{10}$
$(x-3)^7(3-x)^{10}$
etc.
then, you can really check for understanding.
Asking if something is an example or a non-example or a partial example of a concept you're discussing is one way to see if they really understand.
It is, unfortunately, difficult and time-consuming to develop really great probing questions like this. If you find a great source of such questions, let me know. :)
Part 2: What does "one step at a time" mean?
Say students are learning to solve the systems such as:
$x+y=12$ $\hskip 0.5cm$ (1)
$y-2x=6$ $\hskip 0.5cm$ (2)
The Traditional Sequence
Isolate one unknown, say $x$, in equation (1).
Substitute into equation (2).
Solve (2) for $y$.
Substitute that $y$-value into (1).
Plug the values into (1) and (2) to check if they really are solutions.
This may seem like "one step at a time", but to a learner, it feels like five steps at a time.
A different approach to "one step at a time"
First, provide students with five different linear systems and bunch of ordered pairs. Have students verify which of those pairs are solutions to which equations.
Start by learning to check, not to solve.
Then, once they know how to check their own work, have students solve systems, but ramp up difficulty slowly.
Have a bunch of VERY EASY systems such as:
$x=7$ [obviously sub this into the next equation]
$x+y=-10$
Then ramp them up to a bunch of EASY systems such as:
$2x-1=7$ [solve for x, then sub into the next equation]
$x+y=-10$
Ramp up to a bunch of MEDIUM systems such as:
$2x-1=7x+16$ [solve for x, then sub into next equation]
$x+y=-10$
Then, MEDIUM-HARD
$2x-1=y$ [sub immediately into next equation]
$x+y=-10$
"HARD"
$2x-1=y+13$ [isolate an unknown first, then sub into the next equation]
$x+y=-10$
I call this "backwards horizontal" teaching. Students first master the step of checking. Once they can do that, they master the last step before checking, then they can check their answers. Then they move on to doing the last two steps before checking, then actually checking. Repeat until they can do the entire thing from the start.
The purpose of the steps then is crystal clear the entire way and the students really are learning one step a time.
After doing this, I'd ask the students to name all the steps required to solve and check a system of equations. If there were a bunch of students, I'd have them try to do it alone, then check their work with a peer.