Hopefully this is what you're looking for.
For this example, I have the following list with no items (empty list). Note that Item No is of type Number with internal name ItemNo.

See full flow below. I'll go into each of the actions.

I'm not sure what your trigger is, so I've just used a Manual trigger with a Text input called Title that I'll use to populate the Title field.

Get items retrieves the item with the largest Item No in the list. Note that it has Order By set to ItemNo desc and Top Count set to 1.

Create item uses the Title we entered in our Manual trigger for the Title, and the following expression to calculate the next Item No. If we look at the expression from the inside out, we get the first item returned and get the Item No. If no item returned (no items currently in the list) we will default the initial value to 999 using coalesce. We then convert that to an int, then add 1 to it. So the first item will be 999 + 1. The second item will be 1000 + 1, etc.
add(int(coalesce(first(outputs('Get_items')?['body/value'])?['ItemNo'], 999)), 1)

After running the flow a few times, passing in a Title each time, we would get the following results.
