I'm not the best person to explain the ins and outs of tidyeval, but I think that if you're using bang-bang (!!) to unquote the left hand side of an assignment, you need to use a special substitute := operator:
df %>% rename(!!variable := name_of_col_from_df)
How does that go for you?