Вы получаете список объектов $('div.step'). Потом к списку применяете метод $('div.step').index(). Так вот он возвращает номер только первого объекта из списка. Вам надо полученный список обойти в цикле, чтоб узнать позицию каждого.
Примерно так
var stepList = $('div.step');// Ищем все элементы, получаем список элементов
stepList.each(function() {// Проходим по каждому элементу циклом
var self = $(this);// Получаем текущий элемент в цикле
var index = self.index();// Узнаем его порядковый номер относительно списка элементов stepList
self.find('h3').append(index);// В H3 вставляем номер
});