The 26-year-old began his career with Celtic and also played for Motherwell and Inverness Caley Thistle before joining Ross County in 2019.
Somerset Park boss Mark Kerr told the club website: "I am delighted to get this deal over the line as Joe is someone I have tried to get on more than one occasion.
"He has a great left foot and will be a big asset from set-pieces. He is calm and composed on the ball and also adds good height to the team.”