The 29-year-old spent last season on loan to Kilmarnock and Aberdeen from the English Championship side and has previously played for Cowdenbeath and Dundee.
Stewart becomes Steven Gerrard's fourth new signing of the summer after Steven Davis (Southampton), Jake Hastie (Motherwell) and Jordan Jones (Kilmarnock).