The attacker, who spent the second half of last season on loan at Aberdeen, has joined on a two-year-deal.
Stewart, 29, was a free agent after his contract at parent club Birmingham City expired.
He spent the first part of last season on loan at Kilmarnock, scoring eight goals in 16 games. He was left prolific at Aberdeen, with just two goals in 17 league and cup starts.
The move to Ibrox is something of a homecoming for Stewart who began his career in the Rangers Academy.
He then joined Cowdenbeath, where he made over 100 appearances before earning a move to Dundee in 2014.
Two fruitful seasons at Dens Park saw him twice nominated for the PFA Scotland player of the year award.
His form earned him a big money move to Birmingham in 2016 but he struggled for game time in the English Championship, despite signing a three-year contract.
He made 21 league appearances in his first season but was then loaned out to Aberdeen for season 2017-18, and then Killie and the Dons again last season.