1. A method for programming non-volatile storage, comprising: performing multiple programming processes for a plurality of non-volatile storage elements, each of the programming processes operate to program at least a subset of the non-volatile storage elements to a respective set of target conditions using programming pulses; and for at least a subset of the programming processes: identifying a programming pulse associated with achieving an intermediate result for a respective programming process, decreasing a pulse increment between programming pulses for the respective programming process while continuing the respective programming process to program non-volatile storage elements to respective one or more target conditions, and using the identified programming pulse to adjust a starting program voltage for a subsequent programming process for the non-volatile storage elements.