(defmacro steroid-let (&body body)
  (flet ((transform (form bodytail)
           (if (and (listp form)
                    (eql :define (car form)))
               `((let (,(cdr form))
                   ,@(or bodytail `(,(cadr form)))))
               (cons form bodytail))))
    `(progn
       ,@(reduce #'transform body :initial-value nil :from-end t))))

(progn
#1=
(steroid-let
    (:define x 2)
    (:define c 1)
    (setf c (+ c x))
    (:define y (1+ c))
    (format t "c: ~a, y: ~a~%" c y))

(print (macroexpand '#1#)))