There is nothing built in to vim, but you can script something like this:
fu! s:IncrementalMark() abort
let b:index_mark=get(b:, 'index_mark', -1)+1
" configure, which marks to use
nnoremap <silent><expr> <leader>m <sid>IncrementalMark()
marks variable, to configure which marks are actually allowed to be overwritten by this function. If you e.g. want to set the mark a yourself, then remove the a from this variable.
Note, that since marks are buffer-local, so will this function start with the first mark again, once you switch buffers, so you can have the same (lowercase) mark in several buffers.