A set of non-volatile storage elements is divided into subsets for soft
programming in order to more fully soft-program slower soft programming
elements. The entire set of elements is soft-programmed until verified as
soft programmed (or until a first subset of elements is verified as soft
programmed while excluding a second subset from verification). After the
set is verified as soft programmed, a first subset of elements is
inhibited from further soft programming while additional soft programming
is carried out on a second subset of elements. The second subset can
include slower soft programming elements. The second subset can then
undergo soft programming verification while excluding the first subset
from verification. Soft programming and verifying for the second subset
can continue until it is verified as soft programmed. Different step
sizes can be used for increasing the size of the soft programming signal,
depending on which subset is being soft programmed and verified.