Orient were below their best but Batt rescued them two minutes after coming off the bench as Oldham appealed in vain for offside.
Danny Philliskirk headed at the keeper after a cross from James Wesolowski, and the breakthrough came after 36 minutes when MacDonald controlled Korey Smith's header and lashed home a shot from 10 yards out.
Moses Odubajo went close in a rare Orient attack but Oldham had further chances through Philliskirk and Wesolowski.
Orient's leveller, after 66 minutes, left the home side fuming as they claimed Batt was clearly offside when he got a touch on Kevin Lisbie's shot and deflected the ball into the net from close range.
The visitors improved in the closing stages but Odubajo was denied a winner by Oldham keeper Mark Oxley.