Haley was offensive coordinator at Arizona in 2007-08 before becoming the Chiefs' head coach.
Haley was the head coach at Kansas City for three seasons, going 4-12, 10-6 and 5-8 before he was fired Dec. 12.
Haley, whose father played for the Steelers and worked in the team's front office from 1971-90, replaces Bruce Arians as offensive coordinator. Pittsburgh was 12th in the NFL in yards per game (372.3) but 21 in points scored per game (20.3).
"I am excited about the opportunity to come back home and work for a tremendous organization," Haley said Tuesday in a statement. "It is an honor to work with the Rooney family and Coach (Mike) Tomlin and continue the success that has become synonymous with the Steelers.
"My father has so many fond memories both from his playing days and his time in the personnel department with the team, and I look forward to helping bring more championships to Pittsburgh and to being a part of one of the storied franchises in the NFL."