Another answer which uses simpler lisp-constructs than other answers here to step over the list (no throw/catch).
(defun nth-elt (element xs)
"Return zero-indexed position of ELEMENT in list XS, or nil if absent."
(let ((index 0))
(while (and xs (not (equal element (car xs))))
(setq index (1+ index))
(setq xs (cdr xs)))