難波さん、山岡さん、ありがとうございました。

いろいろ御教示いただきましたが、まず、read-event と 
echo-keystrokes を使用して、

@begin{get-point} ----------------------------------------------
(defun get-point ()
  (interactive)
  (let ((p nil))
    (while (not p)
      (let (key (pos nil))
        (setq key (let ((echo-keystrokes 0)) (read-event)))
        (cond 
         ((or (eq key 14) (eq key 'down)); C-n
          (next-line 1))
         ((or (eq key 16) (eq key 'up)); C-p
          (next-line -1))
         ((or (eq key 6) (eq key 'right)); C-f
          (forward-char 1))
         ((or (eq key 2) (eq key 'left)); C-b
          (forward-char -1))
         (t
          (setq pos (point))))
        (setq p pos)))
    p))
@end{get-point} ------------------------------------------------

として、関数 get-point を使用すれば、buffer 内の位置を対話的に指
定できることを確認しました。

カーソル移動のキー定義を一般的に書く方法も御教示頂きましたので、
これから書き直していきたいと思っています。

--
shiiba