Степанов родился 28 апреля 1913 года в Санкт-Петербурге. После окончания девятилетки, он учился в ФЗУ, а в 1930 году поступил в Ленинградский университет. С 1934 году одновременно работал в ГОИ. После окончания университета в 1936 поступил в аспирантуру ГОИ, а через три года защитил кандидатскую диссертацию на тему «Исследование резонансных возмущений в спектрах двухатомных молекул».
В июле 1941 году ушёл добровольцем на фронт, воевал в составе 162-го партизанского отряда Ленинградского фронта, а затем и на Сталинградском фронте.
В январе 1943 году отозван из армии для научной работы в ГОИ, находившемся тогда в эвакуации в Йошкар-Оле. В 1948 году Степанов защитил докторскую диссертацию по теме «Расчет частот колебаний сложных органических молекул». До 1953 года Степанов работал в ГОИ (с 1951 в должности начальника лаборатории).
Работал в Ленинградском институте точной механики и оптики (ЛИТМО). Являлся одним из создателей инженерно-физического факультета ЛИТМО. Доцент, профессор кафедры Теоретической физики (1946-1951).
В 1953 году приглашён в Институт физики АН БССР, в 1955-1973 заведовал лабораторией, в 1957-1985 — директор института. Одновременно с 1953 года — профессор БГУ, до 1963 года возглавлял кафедру спектрального анализа. В 1985-1987 являлся членом и советником Президиума АН БССР. С 1964 года и до конца жизни — главный редактор выходящего в Минске всесоюзного «Журнала прикладной спектроскопии».
Степанов был членом КПСС с 1939 года, в 1971-1986 годах избирался депутатом Верховного Совета БССР.
Степанов создал в Беларуси крупную научную школу, среди его учеников 11 докторов и 45 кандидатов наук. Его именем назван Институт физики Национальной академии наук Беларуси.