Stewart began his career in the youth system of Elgin City before moving to Alloa Athletic in 2013. He then had spells at Avoch and Stirling Albion before joining Ross County in 2016. Stewart quickly made a name for himself at Ross County, establishing himself as a key player and catching the attention of top clubs.