Stewart was born in Enfield, London and attended Enfield Grammar School. He signed for the Tottenham Hotspur Academy in July 2010.
At the end of March 2013, Stewart went on loan to Crewe Alexandra. On 1 April 2013, he made his Football League debut in the 1–0 win against Preston North End.
On 2 July 2014, Stewart joined Liverpool on a free transfer from Tottenham Hotspur on a two-year deal. Stewart announced the move on Twitter, stating that playing for Liverpool had been his dream since he was a boy.
On 1 January 2015, Stewart, along with two other Liverpool reserve players, signed for Cheltenham Town on a one-month loan deal. He made his Cheltenham debut on 3 January in a League Two match against Oxford United. He marked his debut by scoring in the 2–1 victory for Cheltenham. At the end of the month he was recalled to Liverpool, after picking-up an injury.
On 26 March 2015, Stewart joined Burton Albion on month-long loan. On the final day of the 2014-15 season, Stewart came off the bench in the 64th minute, and scored the winner which handed Burton Albion the League Two title.
On 11 July 2015, Stewart was loaned out to Swindon Town.
On 17 September, Stewart suffered a medial ligament injury in a Football League Trophy victory over Newport County, and was estimated to miss six to nine weeks. In January 2016 he was recalled by Liverpool from his loan.
On 8 January 2016, Stewart was named in the first-team and made his competitive debut for Liverpool, starting the FA Cup third round match against Exeter City, a 2–2 draw. On 20 January, he started again in the FA Cup in the 3-0 home win over Exeter City.
He made his Premier League debut on 14 February in Liverpool's 6–0 win over Aston Villa, replacing Philippe Coutinho in the final 25 minutes. Stewart marked the occasion by being booked shortly afterwards by referee Neil Swarbrick.
On 23 February 2016, Stewart signed a new contract keeping him at the club until 2020.
On 21 July 2017, Stewart signed a three-year deal with Hull City for an undisclosed fee. Stewart made his first start for the club on 19 August 2017 in a 2–1 away defeat to Queens Park Rangers.As of 19 August 2017.