Если повернуть телефон вертикально - нужно использовать другую ось компаса. Если она, конечно, есть. Например, в широко распространённом компасе HMC5883L от Honeywell - 3 оси. Соответственно, при повороте компаса "на попа" - работает другая ось (ну, например, не Z, a Y). Отслеживать повороты можно по акселеромеру.
Если у компаса только одна ось - тут вам аксель не поможет. Можно выудить какие-то данные о направлении, если телефон повёрнут не совсем вертикально - но точности уже не будет.