Используйте Core Motion и множество математических функций.
Я сделаю предположение (в этом я, вероятно, ошибаюсь): если вы хотите захватывать круговые движения (рисуя с помощью устройства кружок в воздухе в одной плоскости), делайте регулярные выборки (> 20 Гц) и сохранить максимальные значения x, y и z в массиве каждое (для распознавания во всех 3 плоскостях). Если вы хотите, чтобы жест длился 5 секунд, сохраните 100 сэмплов (с частотой 20 Гц). Затем проанализируйте, имеет ли какой-либо из трех массивов значения, которые изменяются синусоидально. Если это так, у вас есть жест.
Я полагаю, это немного проб и ошибок, или нарисовать на бумаге кружок и угадать значения акселерометра в процессе движения.
Надеюсь, вы найдете ответ. Я уже очень заинтересован.