Народився 2 квітня1983 року і почав займатися футболом у 6 років за пропозицією батька. Після півроку гри за команду «Татра» зі свого села Кісач, він потрапив до академії «Воєводини», коли йому було 11 років[1]. Після виступів у юнацьких командах він був підвищений до першої команди у віці 17 років, в якій провів шість сезонів, взявши участь у 105 матчах чемпіонату.
У січні 2006 року Степанов перейшов у турецький «Трабзонспор» під керівництвом Вахіда Халілходжича[2], який заплатив за гравця 1 мільйон фунтів стерлінгів, уклавши контракт на 4,5 роки. Свій перший матч у турецькій Суперлізі у складі нової команди сербський футболіст провів, вийшовши на заміну, у матчі проти «Кайсеріспора» (2:4) 22 січня 2006 року і загалом до кінця сезону пропустив лише один матч. Захисник також добре розпочав сезон 2006/07 і забив свій перший і єдиний гол у чемпіонаті в кар'єрі за «Трабзонспор» у матчі проти «Анкарагюджю» 2 жовтня 2006 року. Зігравши у стартовому складі в 16 з 17 матчів першої половини сезону чемпіонату, він зміг зіграти лише в 5 матчах другої половини через травми.
У липні 2007 року Степанов перейшов до португальського «Порту» за 3,5 мільйона євро[3]. Серб мав замінити в центрі оборони Пепе, який перейшов у «Реал», але з усіх новачків «драконів» Степанов прибув останнім, пропустивши передсезонні збори в Нідерландах. В результаті він почав чемпіонат на лаві запасних, і навіть після травми Педру Емануела не зміг потрапити в стартовий склад. Його перша офіційна гра за нову команду відбулася в Кубку ліги проти «Фатіми», де, незважаючи на вибуття «Порту», тренер Жезуалду Феррейра високо оцінив виступ Милана. Коли ще один конкурент Степанова за позицією, Жуан Паулу, отримав травму, серб нарешті дебютував у чемпіонаті в грі проти «Боавішти». Поступово він закріпився в основі, але 28 листопада у зустрічі Ліги чемпіонів з «Ліверпулем» «Порту» зазнав поразки з рахунком 1:4. Зустріч була програна багато в чому через помилки Степанова. Після цієї події Милан знову втратив місце і поступився місцем в основі ветерану команди Педру Емануелу. Ситуація загострилася наступного сезону, коли на позицію центрального захисника було куплено Роланду[4][5]. В результаті у сезоні 2008/09 він взяв участь лише в 1 матчі чемпіонату, хоча і здобув з командою «золотий дубль».
25 липня 2009 року Милан був відданий в оренду до іспанського клубу «Малага», яка отримала пріоритетне право на викуп футболіста за 5 млн євро[6]. Він зіграв свій перший матч у Ла Лізі 30 серпня 2009 року в матчі проти «Атлетіко Мадрид» (3:0)[7] і у першій половині сезону провів лише 4 зустрічі, після чого 3 місяці провів на лаві запасних. Він знову вийшов на поле лише 27 лютого у зустрічі проти «Депортіво». Загалом у чемпіонаті Іспанії Степанов зіграв 12 матчів.
Наприкінці липня 2010 року Степанов повернувся до Туреччини, підписавши контракт з переможцем Суперліги «Бурсаспором»[8]. У травні 2012 року команда вирішила розірвати контракт, і незабаром після цього він приєднався до іншої команди місцевого вищого дивізіону «Мерсін Ідманюрду»[9], де провів сезон 2012/13[10].
Надалі Степанов виступав за кіпрську «Омонію»[11] і боснійське «Сараєво», а 2 січня 2016 року після майже десяти років повернувся до складу «Воєводини», підписавши з клубом півторарічний контракт[12]. Втім так і не зігравши жодного матчу за клуб, у жовтні він завершив ігрову кар'єру і увійшов до тренерського штабу рідної команди[13].
Виступи за збірні
Протягом 2003—2006 років залучався до складу молодіжної збірної Сербії і Чорногорії, з якою брав участь у молодіжному чемпіонаті Європи 2006 року в Португалії, дійшовши до півфіналу. Степанов зіграв у всіх чотирьох іграх і став єдиним гравцем своєї команди, що потрапив до символічної збірної турніру[14]. Всього на молодіжному рівні зіграв у 12 офіційних матчах, забив 3 голи.
Степанов був частиною олімпійської збірної, яка взяла участь у Олімпійських іграх 2004 року. Команда Степанова фінішувала останньою в групі С, а сам захисник зіграв у двох матчах[15].
16 серпня 2006 року дебютував в офіційних ігах у складі національної збірної Сербії у товариському матчі проти збірної Чехії, який був історичним першим для новоствореної сербської команди. У тому матчі Степанов отримав дві жовті картки і був змушений покинути поле достроково на 76-й хвилині[16]. Згодом Степанов зіграв ще у 5 іграх невдалого для сербів відбору на Євро-2008.
Загалом протягом кар'єри в національній команді, яка тривала 2 роки, провів у її формі 6 матчів[17].
↑Stepanov i Meleg ponovo kod kuće [Stepanov and Meleg return home] (Serbian) . FK Vojvodina. 2 січня 2016. Архів оригіналу за 10 листопада 2017. Процитовано 2 січня 2016.